﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MJM.SUD.EntidadesNegocio;
using MJM.SUD.AccesoDatos;

namespace MJM.SUD.ComponentesNegocio
{
    public class UbicacionCN
    {
        public List<UbicacionE> ListaUbicacion(int Lugar,int opt,int dep)
        {
            List<UbicacionE> lst=new List<UbicacionE>();
            UbicacionE obj = new UbicacionE();
            UbicacioAD ObjUbicacion=new UbicacioAD();
            if (opt == 1)
            {
                lst = ObjUbicacion.ListaDepartamentos();
                obj.Descripcion = "----Seleccione un departamento----";
                obj.IDUbicacion = -1;
            }
            if (opt == 3)
            {
                lst = ObjUbicacion.ListarDistritos(Lugar,dep);
                obj.Descripcion = "---------Seleccione un distrito---------";
                obj.IDUbicacion = -1;
            }
            if (opt == 2)
            {
                lst = ObjUbicacion.ListarProvincia(Lugar);
                obj.Descripcion = "-------Seleccione una provincia-------";
                obj.IDUbicacion = -1;
            }
            lst.Insert(0, obj);
            return lst;
        }

        public List<UbicacionE> ListarFiltro(string filtro)
        { 
             UbicacioAD ObjUbicacion=new UbicacioAD();
            List<UbicacionE> lst=ObjUbicacion.ListaUbicaciones(filtro);
            if (lst.Count > 13)
                return lst.GetRange(0, 13);
            else
                return lst;
        }

        public List<UbicacionE> ListarVias(string via,string paridad)
        { 
            UbicacioAD objAD=new UbicacioAD();
            List<UbicacionE> lst = objAD.ListarVias();
            List<UbicacionE> resultado = new List<UbicacionE>();
            int contador = 0;
            for (int i = 0; i < lst.Count; i++)
            {
                if (contador == 10)
                    break;
                if (lst[i].Descripcion.Contains(via) && lst[i].Descripcion.TrimEnd().EndsWith(paridad))
                {
                    resultado.Add(lst[i]);
                    contador++;
                }
            }
            return resultado;
        }

        public List<String> ListarDistritos(string filtro)
        {
            UbicacioAD ObjUbicacion = new UbicacioAD();
            return ObjUbicacion.ListarDistritos(filtro);
        }
    }
}
